<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <meta name="keywords" content="Hexo Theme Keep">
    <meta name="description" content="Hexo Theme Keep">
    <meta name="author" content="zhilutianji">
    
    <title>
        
        指路天极&#39;s blog
    </title>
    
<link rel="stylesheet" href="/css/style.css">

    <link rel="shortcut icon" href="https://tostar.site/favicon.ico">
    
<link rel="stylesheet" href="/css/font-awesome.min.css">

    <script id="hexo-configurations">
    let KEEP = window.KEEP || {};
    KEEP.hexo_config = {"hostname":"blog.starlibrary.online","root":"/","language":"zh-CN","path":"search.json"};
    KEEP.theme_config = {"toc":{"enable":true,"number":true,"expand_all":true,"init_open":false},"style":{"primary_color":"#0066CC","avatar":"https://pic-1259449422.cos.ap-shanghai.myqcloud.com/w.jpg","favicon":"https://tostar.site/favicon.ico","article_img_align":"left","left_side_width":"260px","content_max_width":"920px","hover":{"shadow":false,"scale":false},"first_screen":{"enable":true,"background_img":"/images/bg.svg","description":"My Guiding Star ( o゜▽゜ ) o ☆ ."},"scroll":{"progress_bar":{"enable":false},"percent":{"enable":true}}},"local_search":{"enable":true,"preload":false},"code_copy":{"enable":true,"style":"default"},"pjax":{"enable":true},"lazyload":{"enable":true},"version":"3.4.3"};
    KEEP.language_ago = {"second":"%s 秒前","minute":"%s 分钟前","hour":"%s 小时前","day":"%s 天前","week":"%s 周前","month":"%s 月前","year":"%s 年前"};
  </script>
<meta name="generator" content="Hexo 5.4.0"></head>


<body>
<div class="progress-bar-container">
    

    
        <span class="pjax-progress-bar"></span>
        <span class="pjax-progress-icon">
            <i class="fas fa-circle-notch fa-spin"></i>
        </span>
    
</div>


<main class="page-container">

    

    <div class="page-main-content">

        <div class="page-main-content-top">
            <header class="header-wrapper">

    <div class="header-content">
        <div class="left">
            
                <a class="logo-image" href="/">
                    <img src="https://starlibrary.online/favicon.ico">
                </a>
            
            <a class="logo-title" href="/">
                指路天极&#39;s blog
            </a>
        </div>

        <div class="right">
            <div class="pc">
                <ul class="menu-list">
                    
                        <li class="menu-item">
                            <a class=""
                               href="/"
                            >
                                首页
                            </a>
                        </li>
                    
                        <li class="menu-item">
                            <a class=""
                               href="/archives"
                            >
                                归档
                            </a>
                        </li>
                    
                        <li class="menu-item">
                            <a class=""
                               href="/links"
                            >
                                友链
                            </a>
                        </li>
                    
                        <li class="menu-item">
                            <a class=""
                               href="/about"
                            >
                                关于
                            </a>
                        </li>
                    
                    
                        <li class="menu-item search search-popup-trigger">
                            <i class="fas fa-search"></i>
                        </li>
                    
                </ul>
            </div>
            <div class="mobile">
                
                    <div class="icon-item search search-popup-trigger"><i class="fas fa-search"></i></div>
                
                <div class="icon-item menu-bar">
                    <div class="menu-bar-middle"></div>
                </div>
            </div>
        </div>
    </div>

    <div class="header-drawer">
        <ul class="drawer-menu-list">
            
                <li class="drawer-menu-item flex-center">
                    <a class=""
                       href="/">首页</a>
                </li>
            
                <li class="drawer-menu-item flex-center">
                    <a class=""
                       href="/archives">归档</a>
                </li>
            
                <li class="drawer-menu-item flex-center">
                    <a class=""
                       href="/links">友链</a>
                </li>
            
                <li class="drawer-menu-item flex-center">
                    <a class=""
                       href="/about">关于</a>
                </li>
            
        </ul>
    </div>

    <div class="window-mask"></div>

</header>


        </div>

        <div class="page-main-content-middle">

            <div class="main-content">

                
                    <div class="fade-in-down-animation">
    <div class="article-content-container">

        <div class="article-title">
            <span class="title-hover-animation"></span>
        </div>

        
            <div class="article-header">
                <div class="avatar">
                    <img src="https://pic-1259449422.cos.ap-shanghai.myqcloud.com/w.jpg">
                </div>
                <div class="info">
                    <div class="author">
                        <span class="name">zhilutianji</span>
                        
                            <span class="author-label">Lv3</span>
                        
                    </div>
                    <div class="meta-info">
                        <div class="article-meta-info">
    <span class="article-date article-meta-item">
        <i class="fas fa-edit"></i>&nbsp;2022-03-01 10:52:59
    </span>
    
    

    
    
        <span class="article-wordcount article-meta-item">
            <i class="fas fa-file-word"></i>&nbsp;<span>1.5k 字</span>
        </span>
    
    
        <span class="article-min2read article-meta-item">
            <i class="fas fa-clock"></i>&nbsp;<span>5 分钟</span>
        </span>
    
    
        <span class="article-pv article-meta-item">
            <i class="fas fa-eye"></i>&nbsp;<span id="busuanzi_value_page_pv"></span>
        </span>
    
</div>

                    </div>
                </div>
            </div>
        

        <div class="article-content markdown-body">
            <h2 id="（1）选题背景、立意和应用需求等"><a href="#（1）选题背景、立意和应用需求等" class="headerlink" title="（1）选题背景、立意和应用需求等"></a>（1）选题背景、立意和应用需求等</h2><p>        当今社会，商店扮演着重要的社会职能，但是随着互联网的迅速发展，传统的线下购物方式已经无法满足人们快节奏的生活需求。在线购物系统已成为提升商店效率的重要技术手段。该在线自助购物平台可以在实现顾客在网上或线下购物自助化，进行多仓发货、商店无货本地仓库发货及顾客商店自助取货，节约了本来需耗费的时间，也间接地提升了每日的营业额。在毕业设计期间，本人选择“基于Vue.js的在线自助购物平台的设计与实现”课题开展相关问题研究，主要基于本科在学期间，系统学习了相关知识与技术，并对于在线购物平台有所研究，具备开发这一课题的技术与能力储备。</p>
<h2 id="（2）课题前期调研情况"><a href="#（2）课题前期调研情况" class="headerlink" title="（2）课题前期调研情况"></a>（2）课题前期调研情况</h2><p>现有的在线购物系统存在着所购物品运输时间长、补货慢、无法与线下商店进行交互等缺点。因此开发一个在线自助购物平台是很有必要的，这样可以大大所购物品的处理效率，在一定程度上降低了人力物力的成本</p>
<h2 id="（3）具体的课题任务要求等情况"><a href="#（3）具体的课题任务要求等情况" class="headerlink" title="（3）具体的课题任务要求等情况"></a>（3）具体的课题任务要求等情况</h2><p>(1) 在线自助购物平台</p>
<p>(2) 实现顾客在网上或线下购物自助化</p>
<p>(3) 进行多仓发货</p>
<p>(4) 商店无货本地仓库发货</p>
<p>(5) 顾客网上购买后商店自助取货</p>
<h2 id="（4）实施方案（包括技术方案、设计方案等）、实施计划等"><a href="#（4）实施方案（包括技术方案、设计方案等）、实施计划等" class="headerlink" title="（4）实施方案（包括技术方案、设计方案等）、实施计划等"></a>（4）实施方案（包括技术方案、设计方案等）、实施计划等</h2><p>技术方案：</p>
<blockquote>
<p>前端方面：使用Vue2、vue-cli（包括前端打包工具webpack、js转换工具babel、代码规范工具eslint、默认包管理器yarn）、vueRouter、vuex、Axios、elementUI、sass，使用normalize.css重置css样式</p>
</blockquote>
<blockquote>
<p>后端方面：使用spring boot、mysql数据库</p>
</blockquote>
<blockquote>
<p>运维方面：使用nginx代理前端项目，反向代理后端tomcat服务器，解决前端跨域问题</p>
</blockquote>
<blockquote>
<p>测试方面：使用jest进行前端单元测试</p>
</blockquote>
<p>设计方案：</p>
<p>以消息推送、公告推送功能为例：</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br></pre></td><td class="code"><pre><span class="line">一、需求相关信息</span><br><span class="line">需求背景：需要实现推送功能</span><br><span class="line">放弃js轮询的原因（30秒轮询一次对服务器压力大，后端需要写更多的接口，维护麻烦）</span><br><span class="line">PRD：文档链接 </span><br><span class="line">联调时间：2022.03.10 </span><br><span class="line">提测时间：2022.03.11 </span><br><span class="line">上线时间：2022.03.15</span><br><span class="line"></span><br><span class="line">二、实现方式</span><br><span class="line">前端：实现连接websocket连接，定时发送心跳包</span><br><span class="line">后端：实现接收发送消息</span><br><span class="line">运维：实现websocket连接被nginx代理</span><br><span class="line"></span><br><span class="line">三、用例图</span><br><span class="line">文件链接</span><br><span class="line"></span><br><span class="line">四、其他</span><br><span class="line">略</span><br></pre></td></tr></table></figure>

<p>实施计划：</p>
<figure class="highlight plaintext"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br></pre></td><td class="code"><pre><span class="line">2021年12月03日至2021年12月12日 论证项目可行性，制定项目初步计划，查阅文献资料</span><br><span class="line"></span><br><span class="line">2021年12月13日至2022年1月02日 确定系统运行环境，系统功能及性能要求，确认项目开发计划</span><br><span class="line"></span><br><span class="line">2022年1月03日至2022年1月30日 建立系统总体结构，划分功能模块，定义各功能模块接口，数据库设计</span><br><span class="line"></span><br><span class="line">2022年1月31日至2022年2月27日 设计各模块具体实现算法，确定模块间详细接口</span><br><span class="line"></span><br><span class="line">2022年2月28日至2022年3月27日 编写程序源代码，进行模块测试和调试</span><br><span class="line"></span><br><span class="line">2022年3月28日至2022年4月17日 系统测试并完善，纠正错误，完善应用</span><br><span class="line"></span><br><span class="line">2022年4月18日至2022年5月29日 撰写、修改并打印毕业设计说明书，准备答辩</span><br><span class="line"></span><br><span class="line">2022年5月30日至2022年6月03日 毕业设计答辩</span><br></pre></td></tr></table></figure>

<h2 id="（5）目前已完成的进度，已完成部分内容的展示"><a href="#（5）目前已完成的进度，已完成部分内容的展示" class="headerlink" title="（5）目前已完成的进度，已完成部分内容的展示"></a>（5）目前已完成的进度，已完成部分内容的展示</h2><blockquote>
<p>目前已完成除商城核心商品交易功能外的某些功能页面（用户信息模块，工单模块），剩余一些模块即将完成（搜索模块），初始化了后台项目</p>
</blockquote>
<h2 id="（6）参考文献"><a href="#（6）参考文献" class="headerlink" title="（6）参考文献"></a>（6）参考文献</h2><p>[1]方生,秦晓安,王睿.基于前后端分离技术的在线购物平台研究与实现[J].黄河水利职业技术学院学报,2021,33(04):50-54.</p>
<p>[2]胡开华,张玉静,陈明禄等.基于Vue.js的Web应用开发教学案例设计与实现[J].信息与电脑(理论版),2021,33(18):91-94.</p>
<p>[3]刘紫薇. 基于MVVM设计模式的在线教育系统的设计与实现[D].北京邮电大学,2021.</p>
<p>[4]焦灵.基于Web的购物网站系统设计[J].电脑编程技巧与维护,2018(12):131-133+139.</p>
<p>[5]罗业丁,杨振南,贺英健.基于WEB前端技术的校园购物网站的设计与实现[J].信息记录材料,2020,21(08):209-210.</p>
<p>[6]陈秋玲.基于JavaWeb的图书购物网站的设计与实现[J].电脑知识与技术,2019,15(16):36-38.</p>
<p>[7]王伟,常庆丽,吴朝霞.基于Springboot+Vue的精准帮扶系统研究与实现[J].河南科技,2021,40(27):12-14.</p>
<p>[8]焦鹏珲.基于SpringBoot和Vue框架的电子招投标系统的设计与实现[D].南京大学,2018.</p>
<p>[9]邱璐璐,陈俊仁.基于SpringBoot和Vue框架的高校代领系统设计与实现[J].信息技术与信息化,2021(04):25-27.</p>
<p>[10]方生.基于“Vue.js”前端框架技术的研究[J].电脑知识与技术,2021,17(19):59-60+64.</p>
<p>[11]刘启伟. 基于Vue.js框架的Web前端开发工具的设计与实现[D].北京邮电大学,2021.</p>
<p>[12]朱文忠,彭楠,曹丰等.基于vue.js的学术科技活动线上交流的设计与实现[J].长江信息通信,2021,34(04):128-131.</p>
<p>[13]胡开华,张玉静,陈明禄等.基于Vue.js的Web应用开发教学案例设计与实现[J].信息与电脑(理论版),2021,33(18):91-94.</p>
<p>[14]李俊甲,许烨.基于Java的购物网站设计与开发[J].信息与电脑(理论版),2020,32(23):86-88.</p>

        </div>

        

        
            <div class="article-nav">
                
                
                    <div class="article-next">
                        <a class="next"
                           rel="next"
                           href="/post/promise-3.html"
                        >
                            <span class="title flex-center">
                                <span class="post-nav-title-item">promise-3 async &amp; await</span>
                                <span class="post-nav-item">下一篇</span>
                            </span>
                            <span class="right arrow-icon flex-center">
                              <i class="fas fa-chevron-right"></i>
                            </span>
                        </a>
                    </div>
                
            </div>
        

        
    </div>
</div>


                
            </div>

        </div>

        <div class="page-main-content-bottom">
            <footer class="footer">
    <div class="info-container">
        <div class="copyright-info info-item">
            &copy;
            
              <span>2020</span>&nbsp;-&nbsp;
            
            2022&nbsp;<i class="fas fa-heart icon-animate"></i>&nbsp;<a href="/">zhilutianji</a>
        </div>
        
            <script async data-pjax src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
            <div class="website-count info-item">
                
                    <span id="busuanzi_container_site_uv">
                        访问人数&nbsp;<span id="busuanzi_value_site_uv"></span>&ensp;
                    </span>
                
                
                    <span id="busuanzi_container_site_pv">
                        总访问量&nbsp;<span id="busuanzi_value_site_pv"></span>
                    </span>
                
            </div>
        
        <div class="theme-info info-item">
            由 <a target="_blank" href="https://hexo.io">Hexo</a> 驱动&nbsp;|&nbsp;主题&nbsp;<a class="theme-version" target="_blank" href="https://github.com/XPoet/hexo-theme-keep">Keep v3.4.3</a>
        </div>
        
            <div class="icp-info info-item"><a target="_blank" rel="nofollow" href="https://beian.miit.gov.cn">津ICP备20000024号</a></div>
        
    </div>
</footer>

        </div>
    </div>

    
        <div class="post-tools">
            <div class="post-tools-container">
    <ul class="tools-list">
        <!-- TOC aside toggle -->
        
            <li class="tools-item page-aside-toggle">
                <i class="fas fa-outdent"></i>
            </li>
        

        <!-- go comment -->
        
    </ul>
</div>

        </div>
    

    <div class="right-bottom-side-tools">
        <div class="side-tools-container">
    <ul class="side-tools-list">
        <li class="tools-item tool-font-adjust-plus flex-center">
            <i class="fas fa-search-plus"></i>
        </li>

        <li class="tools-item tool-font-adjust-minus flex-center">
            <i class="fas fa-search-minus"></i>
        </li>

        <li class="tools-item tool-expand-width flex-center">
            <i class="fas fa-arrows-alt-h"></i>
        </li>

        <li class="tools-item tool-dark-light-toggle flex-center">
            <i class="fas fa-moon"></i>
        </li>

        <!-- rss -->
        

        

        <li class="tools-item tool-scroll-to-bottom flex-center">
            <i class="fas fa-arrow-down"></i>
        </li>
    </ul>

    <ul class="exposed-tools-list">
        <li class="tools-item tool-toggle-show flex-center">
            <i class="fas fa-cog fa-spin"></i>
        </li>
        
            <li class="tools-item tool-scroll-to-top flex-center">
                <i class="arrow-up fas fa-arrow-up"></i>
                <span class="percent"></span>
            </li>
        
    </ul>
</div>

    </div>

    
        <aside class="page-aside">
            <div class="post-toc-wrap">
    <div class="post-toc">
        <ol class="nav"><li class="nav-item nav-level-2"><a class="nav-link" href="#%EF%BC%881%EF%BC%89%E9%80%89%E9%A2%98%E8%83%8C%E6%99%AF%E3%80%81%E7%AB%8B%E6%84%8F%E5%92%8C%E5%BA%94%E7%94%A8%E9%9C%80%E6%B1%82%E7%AD%89"><span class="nav-number">1.</span> <span class="nav-text">（1）选题背景、立意和应用需求等</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#%EF%BC%882%EF%BC%89%E8%AF%BE%E9%A2%98%E5%89%8D%E6%9C%9F%E8%B0%83%E7%A0%94%E6%83%85%E5%86%B5"><span class="nav-number">2.</span> <span class="nav-text">（2）课题前期调研情况</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#%EF%BC%883%EF%BC%89%E5%85%B7%E4%BD%93%E7%9A%84%E8%AF%BE%E9%A2%98%E4%BB%BB%E5%8A%A1%E8%A6%81%E6%B1%82%E7%AD%89%E6%83%85%E5%86%B5"><span class="nav-number">3.</span> <span class="nav-text">（3）具体的课题任务要求等情况</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#%EF%BC%884%EF%BC%89%E5%AE%9E%E6%96%BD%E6%96%B9%E6%A1%88%EF%BC%88%E5%8C%85%E6%8B%AC%E6%8A%80%E6%9C%AF%E6%96%B9%E6%A1%88%E3%80%81%E8%AE%BE%E8%AE%A1%E6%96%B9%E6%A1%88%E7%AD%89%EF%BC%89%E3%80%81%E5%AE%9E%E6%96%BD%E8%AE%A1%E5%88%92%E7%AD%89"><span class="nav-number">4.</span> <span class="nav-text">（4）实施方案（包括技术方案、设计方案等）、实施计划等</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#%EF%BC%885%EF%BC%89%E7%9B%AE%E5%89%8D%E5%B7%B2%E5%AE%8C%E6%88%90%E7%9A%84%E8%BF%9B%E5%BA%A6%EF%BC%8C%E5%B7%B2%E5%AE%8C%E6%88%90%E9%83%A8%E5%88%86%E5%86%85%E5%AE%B9%E7%9A%84%E5%B1%95%E7%A4%BA"><span class="nav-number">5.</span> <span class="nav-text">（5）目前已完成的进度，已完成部分内容的展示</span></a></li><li class="nav-item nav-level-2"><a class="nav-link" href="#%EF%BC%886%EF%BC%89%E5%8F%82%E8%80%83%E6%96%87%E7%8C%AE"><span class="nav-number">6.</span> <span class="nav-text">（6）参考文献</span></a></li></ol>
    </div>
</div>
        </aside>
    

    <div class="image-viewer-container">
    <img src="">
</div>


    
        <div class="search-pop-overlay">
    <div class="popup search-popup">
        <div class="search-header">
          <span class="search-input-field-pre">
            <i class="fas fa-keyboard"></i>
          </span>
            <div class="search-input-container">
                <input autocomplete="off"
                       autocorrect="off"
                       autocapitalize="off"
                       placeholder="搜索..."
                       spellcheck="false"
                       type="search"
                       class="search-input"
                >
            </div>
            <span class="popup-btn-close">
                <i class="fas fa-times"></i>
            </span>
        </div>
        <div id="search-result">
            <div id="no-result">
                <i class="fas fa-spinner fa-pulse fa-5x fa-fw"></i>
            </div>
        </div>
    </div>
</div>

    

</main>




<script src="/js/utils.js"></script>

<script src="/js/main.js"></script>

<script src="/js/header-shrink.js"></script>

<script src="/js/back2top.js"></script>

<script src="/js/dark-light-toggle.js"></script>



    
<script src="/js/local-search.js"></script>




    
<script src="/js/code-copy.js"></script>




    
<script src="/js/lazyload.js"></script>



<div class="post-scripts pjax">
    
        
<script src="/js/left-side-toggle.js"></script>

<script src="/js/libs/anime.min.js"></script>

<script src="/js/toc.js"></script>

    
</div>


    
<script src="/js/libs/pjax.min.js"></script>

<script>
    window.addEventListener('DOMContentLoaded', () => {
        window.pjax = new Pjax({
            selectors: [
                'head title',
                '.page-container',
                '.pjax'
            ],
            history: true,
            debug: false,
            cacheBust: false,
            timeout: 0,
            analytics: false,
            currentUrlFullReload: false,
            scrollRestoration: false,
            // scrollTo: true,
        });

        document.addEventListener('pjax:send', () => {
            KEEP.utils.pjaxProgressBarStart();
        });

        document.addEventListener('pjax:complete', () => {
            KEEP.utils.pjaxProgressBarEnd();
            window.pjax.executeScripts(document.querySelectorAll('script[data-pjax], .pjax script'));
            KEEP.refresh();
        });
    });
</script>



</body>
</html>
